package main

import "fmt"

type errTest struct {
	s string
}

func (e errTest) Error() string {
	return e.s
}

func returnErr(i int) (err error) {
	if i > 0 {
		err = &errTest{}
	} else {
		err = fmt.Errorf("test")
	}

	return
}

//func returnET(s string) (et *errTest) {
//	et = &errTest{}
//	et.s = s
//	return
//}

func main() {
	switch err := returnErr(0).(type) {
	case errTest:
		fmt.Println("errTest")
	case *errTest:
		fmt.Println("*errTest")
	default:
		fmt.Printf("%#v\n", err)
	}

	//fmt.Println(returnET("test"))
}
